+7 (3822) 900-100
Приёмная комиссия
Приёмная комиссия
Меню сайта

Нужны ли программистам физика и математика? И если да, то зачем…

Нужны ли программистам физика и математика?

И если да, то зачем…

Не будем лукавить: инструменты программирования (готовые шаблоны, алгоритмы, среды разработки) в последние годы стали настолько разнообразными, удобными и продвинутыми, что вопрос «Нужна ли программисту математика?», который раньше не вызывал ничего кроме смеха и мог по абсурдности сравниться с вопросом «Нужно ли медику знать анатомию?», перестал быть абсурдным.

Если набрать этот вопрос в поисковике, вы найдёте немало блогов и видео, где опытные, работающие не первый год программисты рассказывают, что математика им не пригодилась, – и это вполне может быть правдой! Однако, есть небольшой нюанс: само программирование стало настолько объёмным понятием, что опыт программистов из разных сфер, например веб-программирования и геймдева, может кардинально различаться. Кроме того, даже внутри одной специализации перед программистами могут стоять самые разные задачи, для части из которых без знаний математики и физики не обойтись.

Интересный парадокс заключается в том, что больше всего математика и физика пригодятся в программировании людям с творческим складом ума и безграничным полётом фантазии, т.е. качествами, традиционно приписываемыми «гуманитариям».

Давайте разберёмся, кому и зачем нужны в программировании математика и физика, а кто может работать и без них.
Фото: Проектная сессия «Айти — это космос»
Что будет с вами в IT без знания математики
Чтобы проще было понять, кто есть кто в современном программировании, обратимся к метафоре. Представьте себе производство мебели. Когда-то для того, чтобы сделать элементарный стол или стул, необходимо было как минимум уметь пользоваться столярными инструментами. Затем появились мастера, которые делали уникальную мебель. Потом произошла техническая революция, и мебель стало можно делать на станках от доски до покрытого лаком изделия. А затем появился принцип Икеи: ты можешь сам собрать стул или стол и решить, какого он будет цвета, никаких особых знаний для этого не нужно.

С программированием всё обстояло примерно так же. Сначала оно требовало обязательного наличия базовых «инструментов» – знания математики, чтобы писать программы, и знания физики, чтобы уметь обращаться с техникой, которая эти программы запускает. Некоторые становились в этом вопросе настоящими уникальными мастерами, например Маргарет Гамильтон, написавшая коды на стопку бумаги выше её роста для проекта высадки человека на Луну, – это были именно математические расчёты!

Затем появились «станки» – готовые шаблоны, алгоритмы и среды разработки, с помощью которых можно штамповать код как на конвейере, а в последние годы развивается и собственная «Икеа» – ноу- или иначе зерокодинг, который позволяет собирать программы и приложения из готовых блоков.

Теперь, возвращаясь к нашей метафоре, подумайте, кем вы хотите быть в этой цепочке? Дизайнером-проектировщиком, который создаёт новые эскизы мебели, инженером, который разрабатывает станки, способные выполнить самую сложную работу, или рабочим, который делает сотни одинаковых деталей в день? В профессии рабочего нет ничего плохого – это достойная и зачастую хорошо оплачиваемая специальность. Однако это рутинное, однообразное занятие, в котором главная задача – постоянно повторять одни и те же действия.

Да, рабочий может на досуге смастерить мебель собственного дизайна, опираясь не на математические расчёты, а исключительно на свои практические навыки, но, чтобы сделать производство этой мебели массовым, нужно учесть множество параметров – от особенностей материала до способностей станков производить те или иные операции. На одной практике тут далеко не уедешь.

С программированием дела обстоят точно так же: можно закончить короткие курсы программирования и неплохо зарабатывать, выполняя задания по шаблонам, но любое задание, которое потребует чуть более сложного решения, чуть больше креативных навыков, – и вам придётся судорожно вспоминать курс математики или проходить его заново. Без знания математики ваши возможности роста в IT будут существенно ограничены.

Также обратите внимание на то, какое количество, казалось бы, успешных (с точки зрения зарплаты) айтишников жалуется на выгорание, потерю интереса к работе и заканчивает дауншифтингом – переходом на более низкую оплату в другой, более интересной и дающей разнообразие деятельности сфере (в дауншифтинге нет ничего плохого, но разве не лучше сразу настроиться на получение профессии, которая будет и прибыльной, и интересной?).

Чаще всего такому выгоранию подвержены именно те программисты, которые пришли в профессию после коротких курсов, как «рабочие пчёлки», которые выполняют одинаковые задания с помощью инструментов, спроектированных кем-то другим на технике, устройства которой они не до конца или совсем не понимают.

Некоторым людям рутинная работа по душе, они легко с ней справляются, и такие программисты с уверенностью утверждают, что знание математики и физики им не пригодилось, однако это не значит, что их опыт сработает и в вашем случае.
Обратите внимание: чаще всего о том, что можно стать программистом без знания математики, говорят веб-разработчики. В этой сфере инструменты программирования действительно развились до такой степени, что допускают определённую свободу творчества без особых знаний математики, однако это как раз такая разработка, которую мы в нашей метафоре называем «Икеей»: вы можете вносить небольшие элементы собственного творчества, однако не можете отойти от изначальной схемы сборки. Когда это не пара «предметов мебели» за долгий период (пара сайтов или приложений), а ежедневный кропотливый труд, задача становится не такой уж увлекательной.
Также не обязательны глубокие знания математики для начинающих тестировщиков, однако как раз тестирование (если вы не создаёте ничего принципиально нового, а пользуетесь готовыми инструментами) представляет собой рутинную и довольно однообразную работу.
Где пригодятся математика и физика в IT
Практически везде, разница будет только в том, что в одних сферах знание этих предметов даст вам значительный бонус и сделает уникальным специалистом, в другие без этих знаний вообще невозможно попасть – это порог входа.

Сначала перечислим те области программирования, в которых знание математики и физики нужно в меньшей степени:
веб-разработка, точнее, её фронтенд-часть, ведь для бэкенда и фулстек-разработки нужно как минимум разбираться в «железе» – оборудовании, на которое устанавливаются программы, и тут без физики никак;
разработка мобильных приложений на базовом уровне – опять же, при условии того, что вы работаете исключительно со стандартными инструментами по шаблонам и не пытаетесь создать нечто уникальное, что не смогут повторить конкуренты;
разработка стандартных десктопных приложений.
Во всех остальных сферах IT знание физики и математики необходимо, однако, поскольку и математика, и физика – очень широкие понятия, для разных IT-специальностей нужны разные разделы этих наук.
Геймдев
Разработка игр – одна из самых творческих сфер в современных IT, это возможность создавать собственные уникальные миры. Однако, чтобы эти миры были достоверны с точки зрения пользовательского опыта, в них либо должны работать знакомые нам законы физики, либо необходимы собственные, не менее чётко прописанные.

Что происходит, когда герой пытается перепрыгнуть глубокое ущелье? Как движется машина по разным поверхностям? Что будет при попадании пули в бронежилет? А главное – как описать все эти процессы таким языком, чтобы компьютер понял, что требуется показать пользователю? Для ответа на эти вопросы, потребуются знания в области механики, баллистики и, разумеется, алгоритмов.

Даже если вы хотите заниматься написанием сценариев для игр, вам нужно понимать, какие ограничения на действия персонажей накладывают возможности техники, а также, если вы разрабатываете RPG – игры с участием многих игроков в разных ролях, не обойтись без применения теории вероятностей: невозможно заранее узнать, какое решение примет игрок в ситуации выбора, нужно учесть все вероятности и строить сценарий с учётом разных решений пользователя.
Искусственный интеллект, нейросети, машинное обучение и Data Science
Математическая статистика – фундамент машинного обучения и сбора данных в Data Science. Машины учатся на основе анализа статистических данных, соответственно, задача разработчика – предоставить данные в таком виде, чтобы робот смог собирать, обрабатывать и понимать эту информацию.

Также понадобятся знания в области линейной алгебры, математических функций, логарифмов, математического анализа, дискретной математики, исследовании операций.

Создание самообучающихся (с помощью технологий машинного обучения) искусственных нейросетей без знания математики невозможно.

Что касается ИИ, то тут пригодится и знание физики. Дело в том, что искусственный интеллект ценен не столько сам по себе, сколько как мозг для роботов. При этом нужно понимать, как такой мозг будет взаимодействовать с оболочкой робота, как программа «встанет» на «железо». Здесь потребуются знания в области механики, электро- и схемотехники.
Нейрокомпьютерные интерфейсы
Нейрокомпьютерные интерфейсы – это электронные системы, взаимодействующие напрямую с мозгом человека. Это могут быть приборы, принимающие сигналы мозга, передающие сигналы в мозг и выполняющие обе эти функции. Для обработки и корректного распознавания сигналов, как и в случае с машинным обучением, потребуется знание математической статистики.

Кроме того, чтобы создавать приборы, способные максимально точно передавать и принимать сигналы, специалисту по нейрокомпьютерным интерфейсам необходимы знания в области радиотехники, электро- и схемотехники и даже приборостроения.
Разработка программ для микроконтроллерной техники
Микроконтроллеры – это приборы с огромным спектром сфер применения, они стоят практически во всех современных устройствах: умных пылесосах, системах автоматического полива, электронных кодовых замках, роботах-манипуляторах и т.п.

Чтобы создавать программы для микроконтроллерной техники, необходимо разбираться в устройстве микроконтроллеров – тут также потребуются знания в области электротехники, схемотехники, приборостроения.
Веб-дизайн и дизайн игр
Хотя мы и сказали, что в веб-разработке на начальных этапах можно обойтись без знаний математики и физики, разработка веб-дизайна – исключение. Дизайнеру необходимы знания в области геометрии и векторной математики.

Понимание законов геометрии необходимо любому дизайнеру, а без знания векторной алгебры будет сложно создавать графические объекты и управлять их движением. Также для управления движением объектов пригодятся знания физики, конкретно – раздела механики.
Хорошая новость для гуманитариев
Как вы можете убедиться, во многих сферах IT не обойтись без знаний в области математики и физики. Хорошая новость заключается в том, что на отлично и сразу знать все разделы этих наук не обязательно: где-то востребована механика или электротехника, где-то – векторная алгебра или теория вероятностей.

Выберите ту специальность, которая вам больше всего по душе, узнайте, какие разделы математики и физики нужны конкретно в этой области, и сосредоточьтесь на них. А если понадобится сменить специальность и получить больше знаний в других областях, у вас уже сформируется привычка к изучению нужной науки, вы будете понимать язык математиков и физиков, и обучение новым навыкам пройдёт легче.

В ТУСУР поступают школьники с разным уровнем подготовки, и тусуровские преподаватели к этому готовы – они учитывают особенноскти студентов, дают информацию в доступном виде и консультируют первокурсников по сложным темам.

Главное – сдать ЕГЭ на достаточно высокий для поступления на выбранную специальность балл.
Тебе может быть полезно: